package com.bear.fastrepair.entity

import android.net.Uri
import java.io.File

data class OrderInfoDetail(
    var code: Int,
    val `data`: DetailData,
    val msg: String
)

data class DetailData(
    val addressDetail: String,
    val appointEndTime: String,
    val appointStartTime: String,
    val assignTime: String,
    val checkIn: Int,
    val checkInLatitude: Double,
    val checkInLongitude: Double,
    val clientName: String,
    val clientRemark: String,
    val clientTel: String,
    val createTime: String,
    val description: String,
    val employeeId: String,
    val employeeName: String,
    val id: String,
    val locationAddress: String,
    val locationLatitude: Double,
    val locationLongitude: Double,
    val orderId: String,
    val orderImages: String,
    val orderLogList: List<OrderLog2>,
    val orderNo: String,
    val orderStatus: Int,
    val orderStatusText: String,
    val regionCode: String,
    val regionText: String,
    val serviceOrderStatus: Int,
    val serviceOrderStatusText: String,
    val updateTime: String
)

data class OrderLog2(
    val createTime: String,
    val id: String,
    val images: String,
    val remark: String,
    val userId: String,
    val userName: String,
    val userType: Int
)

interface ItemType {
    val itemType: Int
}

data class DetailDataType(val data: DetailData?, override val itemType: Int = 0) : ItemType
data class OrderLogType(val log: OrderLog2?, override val itemType: Int = 1) : ItemType
data class ImagesType(
    val list: ArrayList<BitmapInfo>,
    val data: DetailData?,
    override val itemType: Int = 2
) : ItemType

data class UploadImagesType(val list: ArrayList<BitmapInfo>, override val itemType: Int = 3) :
    ItemType

data class OrderImagesType(val data: OrderImages, override val itemType: Int = 4) : ItemType
data class SeparatorType(val data: String, override val itemType: Int = 5) : ItemType

data class BitmapInfo(
    var file: File? = null,
    val uri: Uri? = null,
    val url: String? = null,
    val resId: Int? = null
)

data class BookingBody(
    val appointEndTime: String,
    val appointStartTime: String
)
